home *** CD-ROM | disk | FTP | other *** search
/ Transactor / Transactor_13_1986_Transactor_Publishing.d64 / save symass syms (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  2KB  |  90 lines

  1. 100 sys700
  2. 110 ; < <<save symass symbols>> >
  3. 120 ;             1.3
  4. 130 ;    robert huehn mar 1986
  5. 140 *=820 ;   820 to 1021
  6. 150 ;
  7. 160 memsiz =$37   ;top of memory
  8. 170 symptr =$52   ;pointer to table
  9. 180 symend =$57   ;bottom of table
  10. 190 line   =$39   ;line number
  11. 200 clr    =$a663 ;do clr
  12. 210 eval   =$ad9e ;evaluate expression
  13. 220 chkstr =$b6a3 ;check for string
  14. 230 setnam =$ffbd ;set file name
  15. 240 setlfs =$ffba ;set logical file
  16. 250 open   =$ffc0 ;open file
  17. 260 chkout =$ffc9 ;output channel
  18. 270 chrout =$ffd2 ;print
  19. 280 clrchn =$ffcc ;clear channels
  20. 290 close  =$ffc3 ;close
  21. 300 ready  =$a474 ;ready
  22. 310 ;
  23. 320 lda memsiz:sta symptr ;protect
  24. 330 lda memsiz+1:sta symptr+1 ;symbol
  25. 340 lda symend:ldx symend+1 ;table from
  26. 350 jsr lower
  27. 360 jsr eval ;basic's evaluate
  28. 370 jsr chkstr ;get length and pointer
  29. 380 jsr setnam ;for kernal routine
  30. 390 lda #8 ;file 8, dev 8
  31. 400 tax
  32. 410 ldy #1 ;sec addr 1
  33. 420 jsr setlfs
  34. 430 jsr open
  35. 440 ldx #8
  36. 450 jsr chkout
  37. 460 lda #1:jsr dout ;fake start address
  38. 470 lda #0:sta line:sta line+1
  39. 480 lda symptr:ldx symptr+1
  40. 490 jsr lower ;move memsiz back
  41. 500 sss1 lda symptr ;check for end of
  42. 510 sec             ;symbol table
  43. 520 sbc #10
  44. 530 sta symptr
  45. 540 bcs sss2
  46. 550 dec symptr+1
  47. 560 sss2 cmp symend
  48. 570 lda symptr+1
  49. 580 sbc symend+1
  50. 590 bcc done
  51. 600 lda #1:jsr dout
  52. 610 inc line ;save fake link and new
  53. 620 bne sss3 ;line number
  54. 630 inc line+1
  55. 640 sss3 lda line:jsr chrout
  56. 650 lda line+1:jsr chrout
  57. 660 ldy #0
  58. 670 sss4 lda (symptr),y
  59. 680 beq sss5
  60. 690 jsr chrout ;save symbol name
  61. 700 iny:cpy #8
  62. 710 bne sss4
  63. 720 sss5 lda #" ":jsr chrout
  64. 730 lda #$b2:jsr chrout ;save ' =$'
  65. 740 lda #"$":jsr chrout ;and hex value
  66. 750 ldy #9:lda (symptr),y:beq sss6:jsr hex
  67. 760 sss6 dey:lda (symptr),y:jsr hex
  68. 770 lda #0:jsr chrout
  69. 780 jmp sss1
  70. 790 hex =* ;print hex number
  71. 800 pha
  72. 810 lsr:lsr:lsr:lsr
  73. 820 jsr he1
  74. 830 pla:and #$0f
  75. 840 he1 cmp #10
  76. 850 bcc he2
  77. 860 adc #6
  78. 870 he2 adc #$30
  79. 880 jmp chrout
  80. 890 lower =*
  81. 900 sta memsiz:stx memsiz+1
  82. 910 jmp clr
  83. 920 dout =*
  84. 930 jsr chrout:jmp chrout
  85. 940 done lda #0:jsr dout
  86. 950 lda #8 ;finish
  87. 960 jsr close
  88. 970 jsr clrchn
  89. 980 jmp ready
  90.